package com.zmn.mcc.business.interfaces.dpermit.cube;

import com.zmn.cube.common.dro.menu.MenuDRO;
import com.zmn.mcc.model.dto.dpermit.DpermitSimpleDO;

import java.util.List;

/**
 * 大数据系统报表菜单复杂服务
 *
 * @author heguanghua
 * @since 2020/06/11 17:21
 */
public interface DpermitCubeMenuBService {

    /**
     * 取得全部一级、二级、三级菜单列表，一级和二级并列，三级为二级的子集
     * 已有数据权限则置为选中
     *
     * @param status
     * @param dpermitIds 已有数据权限的菜单ID集合
     * @param menus      原始大数据报表菜单对象集合
     * @return
     */
    List<DpermitSimpleDO> listMenuAndDpermitChecked(Integer status, List<Integer> dpermitIds, List<MenuDRO> menus);

    /**
     * 取得全部一级、二级、三级菜单的层级列表
     * 已检查并处理简单数据对象选中状态，包括下级全选
     *
     * @param status
     * @param dpermitIds 已有数据权限的菜单ID集合
     * @param menus      原始大数据报表菜单对象集合
     * @return
     */
    List<DpermitSimpleDO> listMenuTreeAndDpermitChecked(Integer status, List<Integer> dpermitIds, List<MenuDRO> menus);
}
